/**
 * 
 */
package com.umariana.ClinicaVeterinaria.mundo;

import java.sql.SQLException;
import java.util.ArrayList;

import com.umariana.ClinicaVeterinaria.Persistencia.ConsultaDao;
import com.umariana.ClinicaVeterinaria.Persistencia.CuentaDao;
import com.umariana.ClinicaVeterinaria.Persistencia.MascotaDao;

/**
 * @author Andres
 *
 */
public class Propietario
{

	private String identificacion;
	private String nombres;
	private String apellidos ;
	private String direccion;
	private String telefono;
	private ArrayList<Mascotas> mascotas;
	private ArrayList<Consulta> consulta;
	private Cuenta cuenta;
	
	
	
	/**
	 * @param identificacion
	 * @param nombres
	 * @param apellidos
	 * @param direccion
	 * @param telefono
	 * @param mascotas
	 * @throws SQLException 
	 * @throws ClassNotFoundException 
	 * @throws IllegalAccessException 
	 * @throws InstantiationException 
	 */
	public Propietario(String identificacion, String nombres,
			String apellidos, String direccion, String telefono) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException 
	{
		this.identificacion = identificacion;
		this.nombres = nombres;
		this.apellidos = apellidos;
		this.direccion = direccion;
		this.telefono = telefono;
		this.mascotas =actualizarMascotas();
		this.consulta = actualizarConsultas();
		this.cuenta = new Cuenta(this, 0);
	}


	


	/**
	 * @return the identificacion
	 */
	public String getIdentificacion() {
		return identificacion;
	}


	/**
	 * @param identificacion the identificacion to set
	 */
	public void setIdentificacion(String identificacion) {
		this.identificacion = identificacion;
	}


	/**
	 * @return the nombres
	 */
	public String getNombres() {
		return nombres;
	}


	/**
	 * @param nombres the nombres to set
	 */
	public void setNombres(String nombres) {
		this.nombres = nombres;
	}


	/**
	 * @return the apellidos
	 */
	public String getApellidos() {
		return apellidos;
	}


	/**
	 * @param apellidos the apellidos to set
	 */
	public void setApellidos(String apellidos) {
		this.apellidos = apellidos;
	}


	/**
	 * @return the direccion
	 */
	public String getDireccion() {
		return direccion;
	}


	/**
	 * @param direccion the direccion to set
	 */
	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}


	/**
	 * @return the telefono
	 */
	public String getTelefono() {
		return telefono;
	}


	/**
	 * @param telefono the telefono to set
	 */
	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}


	/**
	 * @return the mascotas
	 */
	public ArrayList<Mascotas> getMascotas() {
		return mascotas;
	}


	/**
	 * @param mascotas the mascotas to set
	 */
	public void setMascotas(ArrayList<Mascotas> mascotas) {
		this.mascotas = mascotas;
	}


	/**
	 * @return the citas
	 */
	public ArrayList<Consulta> getConsultas() {
		return consulta;
	}


	/**
	 * @param citas the citas to set
	 */
	public void setCitas(ArrayList<Consulta> citas) {
		this.consulta = citas;
	}


	
	
	/**
	 * @return the consulta
	 */
	public ArrayList<Consulta> getConsulta() {
		return consulta;
	}





	/**
	 * @param consulta the consulta to set
	 */
	public void setConsulta(ArrayList<Consulta> consulta) {
		this.consulta = consulta;
	}





	/**
	 * @return the cuenta
	 * @throws SQLException 
	 * @throws ClassNotFoundException 
	 * @throws IllegalAccessException 
	 * @throws InstantiationException 
	 */
	public Cuenta getCuenta() throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException {
		CuentaDao cd = new CuentaDao();
		setCuenta(cd.selectrcuenta(cuenta));
		
		return cuenta;
	}





	/**
	 * @param cuenta the cuenta to set
	 */
	public void setCuenta(Cuenta cuenta) {
		this.cuenta = cuenta;
	}





	public void agregarConsulta(String fecha, String hora, String nombreMascota,
			String motivo)
	{
		Consulta c = new Consulta(fecha, hora, nombreMascota, motivo);
		consulta.add(c);
	}
	 
	public void agregarMascota(String nombre, int edad, String raza, String especie) 
	{
		Mascotas m = new Mascotas(nombre, edad, raza, especie);
		mascotas.add(m);
		
	}
	public ArrayList<Mascotas> actualizarMascotas() throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException
	{
		MascotaDao md = new MascotaDao();
		
		return md.selectAllMascotas(identificacion);
	}
	private ArrayList<Consulta> actualizarConsultas() throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException {
		ConsultaDao cd = new ConsultaDao();
		return cd.selectAllConsultas(identificacion);
	}
	
	public void agregarCargo(float pSaldo) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException
	{

		CuentaDao cu = new CuentaDao();
		cu.updateACuenta(cuenta);
	}
	public void pagarCuenta(float pSaldo) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException
	{
	
		CuentaDao cu = new CuentaDao();
		cu.updateRCuenta(cuenta, pSaldo);
	}
	
	
	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return identificacion + "__"
				+ nombres + "__" + apellidos ;
	}
	
	
	
	
	
	
	
}
